package poo.exo1;

public class Main
{
 /*
  * Seuls les fonctions de création et de fermeture d'un compte on été implémenté.
  * Le .classpath n'a pas été ajouté lors du dernier commit je n'ai pas pu régler le problème.
  * Veuillez accepter toutes mes excuses.
  */
	private static List<CompteEpargne> compteEpargne = new ArrayList<CompteEpargne>();;
	private static List<CompteAction> compteAction = new ArrayList<CompteAction>();
	private static List<CompteCourant> compteCourant = new ArrayList<CompteCourant>();
	private static List<Personne> pers = new ArrayList<Personne>();

	
	public void creerCompte(Personne p)
	{
		Scanner sc = new Scanner(System.in);
		int choix;
		boolean quitter = false;
		boolean erreur = false;
		do
		{

			System.out.println("1.Compte Epargne #1");
			System.out.println("2.Compte Action #2");
			System.out.println("3.Compte Courant #3");
			System.out.println("0. Quitter");
			System.out.println("Quel type de compte voulez-vous ouvrir ?");
			choix = sc.nextInt();
			if (choix == 1)
			{
				System.out.println("\Création compte epargne :\n");
				Scanner entree = new Scanner(System.in);
				System.out.println("Nom :");
				String nom = entree.nextLine();
				System.out.println("Solde du compte :");
				double solde = entree.nextDouble();
				System.out.println("Plafond :");
				double plafond = entree.nextDouble();

				for (CompteEpargne compteE : compteepargne) 
				{
					if (compteE.getNom().equals(nom))
					{
						System.out.println("Erreur: Compte déja existant!");
						erreur = true;
					}
				}

				if (erreur == false)
				{
					CompteEpargne nCompteEpargne;

					try
					{
						nCompteEpargne = new CompteEpargne(nom, (compteepargne.size() + 1), solde, plafond);
						compteepargne.add(nCompteEpargne);
					} catch (MyException e)
					{
						e.printStackTrace();
					}
				}
			} else if (choix == 2)
			{
				System.out.println("\nCréation compte action :\n");
				Scanner entree = new Scanner(System.in);
				System.out.println("Nom :");
				String nom = entree.nextLine();
				System.out.println("Solde du compte :");
				double solde = entree.nextDouble();
				System.out.println("Plafond max crédit :");
				double plafond = entree.nextDouble();

				for (CompteAction compteA : compteaction)
				{
					if (compteA.getNom().equals(nom))
					{
						System.out.println("Erreur: Compte déja existant!");
						erreur = true;
					}

				}

				if (erreur == false)
				{
					CompteAction nCompteAction;
					try
					{
						nCompteAction = new CompteAction(nom, (compteaction.size() + 1), solde, plafond);
						compteaction.add(nCompteAction);
					} catch (MyException e)
					{
						e.printStackTrace();
					}
				}

			} else if (choix == 3)
			{
				System.out.println("\nCréation compte courant :\n");
				Scanner entree = new Scanner(System.in);
				System.out.println("Nom :");
				String nom = entree.nextLine();
				System.out.println("Solde du compte :");
				double solde = entree.nextDouble();
				System.out.println("Decouvert max  :");
				double decouvert = entree.nextDouble();

				for (CompteCourant compteC : comptecourant)
				{
					if (compteC.getNom().equals(nom))
					{
						System.out.println("Erreur: Compte déja existant!");
						erreur = true;
					}

				}

				if (erreur == false)
				{
					CompteCourant nCompteCourant;
					try
					{
						nCompteCourant = new CompteCourant(nom, (comptecourant.size() + 1), solde, decouvert);
						comptecourant.add(nCompteCourant);
					} catch (MyException e)
					{
						e.printStackTrace();
					}
				}
			} else if (choix == 0)
			{
				quitter = true;
			} else
			{
				System.out.println("Erreur: Ce choix n'est pas possible.\n");
			}
		} while (!quitter);

	}

	public static void fermerCompte(String nom, int type)
	{
		int compteur = 0;
		if (type == 2)
		{
			System.out.println("Clôture du compte épargne de " + nom + " : \n");
			for (CompteEpargne compteE : compteEpargne)
			{
				if (compteE.getNom().equals(nom))
				{
					compteE.setOuvert(false);
					System.out.println("Votre compte épargne est cloturé \n");
					compteur++;
				} else
				{
					System.out.println(nom + " ne possede pas de  compte.");
				}
			}
		}

		if (type == 3)
		{
			System.out.println("Clôture du compte action de " + nom + " : \n");
			for (CompteAction compteA : compteaction)
			{
				if (compteA.getNom().equals(nom))
				{
					compteE.setOuvert(false);
					System.out.println("Votre compte action est cloturé \n");
					compteur++;
				} else
				{
					System.out.println(nom + " ne possede pas de compte.");
				}
			}
		}
		if (type == 1)
		{
			System.out.println("Clôture du Compte Courant de " + nom + " : \n");
			for (CompteCourant compteC : comptecourant)
			{
				if (compteC.getNom().equals(nom))
				{
					compteC.setOuvert(false));
					System.out.println("Votre compte courant est cloturé \n");
					compteur++;
				} else
				{
					System.out.println(nom + " ne possede pas de compte.");
				}
			}
		}
		if (compteur == 0)
		{
			System.out.println(nom + " ne possede pas de compte.");
		}
	}

	public static void menuPrincipal()
	{
		boolean quitter = false;
		int compt =0;
		do
		{
			System.out.println("\nEntrez votre nom :\n");
			Scanner sc = new Scanner(System.in);             
            String nom =  sc.nextLine();
            
            for (Personne p : pers)
			{
				if (p.getNom().equals(nom))
				{
					if(p.isAdmin)
					{
						System.out.println("Bienvenue "+nom+" (Administrateur)\n");
						System.out.println("\nMenu :\n");
					}else
					{
						System.out.println("Bienvenue "+nom+" (Utilisateur)\n");
						System.out.println("\nMenu :\n");
					}
						
				} else
				{
					System.out.println(nom + "n'est pas un utilisateur conu du système.");
				}
			}
			
			
		} while (!quit);
	}

	public static void main(String[] args)
	{
		pers.add(new Personne("Julien",false));
		pers.add(new Personne("Nacer",true));
		pers.add(new Personne("TK",false));
		pers.add(new Personne("Charles",false));

	}

}
